package com.dao;

import com.bean.Student;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
@Mapper
public interface StudentDao {
    /**
     *
     * 获取所有学生
     * @return java.util.List<com.bean.Student>
     * @author 末日流光
     * @date 2022/5/14 10:11
     */
    public List<Student> getStudents();
    /**
     *
     * 添加学生
     * @param student
     * @return int
     * @author 末日流光
     * @date 2022/5/14 10:11
     */

    public int addStudent(Student student);
    /**
     *
     * 分页查询学生信息
     * @param start
     * @param limit
     * @return java.util.List<com.bean.Student>
     * @author 末日流光
     * @date 2022/5/14 10:12
     */

    public List<Student> getStudentsByPage(@Param("start") int start,@Param("limit") int limit);
    /**
     *
     * 获取所有学生数量
     * @return int
     * @author 末日流光
     * @date 2022/5/14 10:12
     */
    public int getStudentsLength();
    /**
     *
     * 根据学生编号删除学生
     * @param id
     * @return int
     * @author 末日流光
     * @date 2022/5/14 10:12
     */

    public int delStudentById(@Param("id") int id);
    /**
     *
     * 根据学生编号查询学生
     * @param id
     * @return com.bean.Student
     * @author 末日流光
     * @date 2022/5/14 10:12
     */

    public Student selectStudentById(@Param("id")int id);
    /**
     *
     * 更新学生信息
     * @param student
     * @return int
     * @author 末日流光
     * @date 2022/5/14 10:13
     */

    public int updateStudentById(Student student);
    /**
     *
     * 根据班级编号查询学生
     * @param cid
     * @return java.util.List<com.bean.Student>
     * @author 末日流光
     * @date 2022/5/14 10:13
     */

    public List<Student> selectStudentBycId(@Param("cid")int cid);
    /**
     *
     * 根据学生姓名分页查询学生
     * @param name
     * @param start
     * @param limit
     * @return java.util.List<com.bean.Student>
     * @author 末日流光
     * @date 2022/5/14 10:13
     */

    public List<Student> selectStudentByName(@Param("name")String name,@Param("start") int start,@Param("limit") int limit);
    /**
     *
     * 根据学生信息查询学生数量
     * @param name
     * @return int
     * @author 末日流光
     * @date 2022/5/14 10:14
     */

    public int selectStudentByNameLength(@Param("name") String name);
    /**
     *
     * 根据班级编号查询学生数量
     * @param cid
     * @return int
     * @author 末日流光
     * @date 2022/5/14 10:14
     */

    public int selectStudentBycIdLength(@Param("cid") int cid);
}
